﻿Ext.define('HIT.view.DealSendMessageGrid', {
	extend : 'Ext.grid.Panel',
	alias : 'widget.dealsendmessage',

	cls : 'custom-grid',
	frame : false,
	width : 1200,
	columnLines : false,
	store : 'DealSendMessage',

	initComponent : function() {
		var me = this;

		function mailPreview() {
			// 新建并打开窗口
			Ext.create('Ext.window.Window', {
				title : Share.T('邮件内容预览'),
				height : 515,
				width : 510,
				id : 'mail_review_win',
				modal : true,
				layout : {
					type : 'absolute'
				},
				items : [ {
					xtype : 'textfield',
					id : "review_to",
					x : 20,
					y : 10,
					width : 450,
					fieldLabel : Share.T('To')
				}, {
					xtype : 'textfield',
					id : 'review_cc',
					x : 20,
					y : 40,
					width : 450,
					fieldLabel : Share.T('CC')
				}, {
					xtype : 'textfield',
					id : 'review_bcc',
					x : 20,
					y : 70,
					width : 450,
					fieldLabel : Share.T('BCC')
				}, {
					xtype : 'textfield',
					id : 'review_subject',
					x : 20,
					y : 100,
					width : 450,
					fieldLabel : Share.T('主题')
				}, {
					xtype : 'textareafield',
					id : 'review_email',
					height : 200,
					x : 20,
					y : 130,
					width : 450,
					fieldLabel : Share.T('邮件正文')
				}, {
					xtype : 'textareafield',
					id : 'review_msg',
					height : 100,
					width : 450,
					x : 20,
					y : 340,
					fieldLabel : Share.T('短信正文')
				}, {
					xtype : 'button',
					x : 420,
					y : 450,
					width : 50,
					text : Share.T('关闭'),
					handler : function() {
						Ext.getCmp('mail_review_win').close();
					}
				} ]
			}).show();
		}
		
		function renderColor(value, cellmeta, record, rowIndex, columnIndex,
				store) {
			return "<span style='color:blue;cursor:pointer;'>" + value
					+ "</span>";
		}

		Ext.applyIf(me, {
			columns : [ {
				xtype : 'rownumberer',
				resizable: true,
				width : 30
			}, {
				xtype : 'gridcolumn',
				width : 150,
				align : 'center',
				dataIndex : 'doc_no',
				renderer : renderColor,
				text : Share.T('单据号'),
				listeners : {
					dblclick : function(e) {
						var grid = Ext.getCmp('tab-deal-send');
						var selModel = grid.getSelectionModel();
						var model = selModel.getSelection()[0];
						var doc_no = model.get('doc_no');
                		var node =
				        {
				            "data": { "id": "deal-enter", "text": Share.T('票据录入'), "iconCls": "tj-tree-folder"}
				        };
                		Share.documentNo=doc_no;
                		Share.enterFlag = false;
				        Share.opentTabByPanel(node, 'widget.dealenterpanel', 1, false);
					}
				}
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'doc_date',
				format : 'Y-m-d',
				text : Share.T('单据日期')
			}, {
				xtype : 'gridcolumn',
				width : 180,
				align : 'left',
				dataIndex : 'cust_name',
				style:'text-align:center;',
				text : Share.T('客户名称')
			}, {
				xtype : 'gridcolumn',
				align : 'left',
				width : 110,
				dataIndex : 'exp_rec',
				style:'text-align:center;',
				text : Share.T('收件人')
			}, {
				xtype : 'gridcolumn',
				align : 'left',
				width : 110,
				dataIndex : 'rec_dep',
				style:'text-align:center;',
				text : Share.T('所属部门')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 110,
				dataIndex : 'inv_no',
				text : Share.T('发票号码')
			}, {
				xtype : 'gridcolumn',
				align : 'right',
				width : 110,
				dataIndex : 'inv_amount',
				style:'text-align:center;',
				text : Share.T('发票金额')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 100,
				format : 'Y-m-d',
				dataIndex : 'inv_date',
				text : Share.T('发票日期')
			}, {
				xtype : 'gridcolumn',
				align : 'left',
				width : 110,
				dataIndex : 'exp_name',
				style:'text-align:center;',
				text : Share.T('快递公司')
			}, {
				xtype : 'gridcolumn',
				align: 'left',
                style:'text-align:center;',
				width : 110,
				dataIndex : 'exp_no',
				text : Share.T('快递单号')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 90,
				dataIndex : 'content',
				renderer : renderColor,
				text : Share.T('通知内容'),
				listeners : {
					dblclick : function(e) {
						// 取值赋值
						var grid = Ext.getCmp('tab-deal-send');
						var selModel = grid.getSelectionModel();
						var model = selModel.getSelection()[0]; 
						var doc_no = model.get('doc_no');
						
						// 当没有快递单号或没有收件人时不允许发送邮件或短信
						var express = model.get('exp_no');
						var exp_rec = model.get('exp_rec');
						if (express == null || express == '' || exp_rec == null || exp_rec == '') {
							Share.ShowMessage('I0084');
							return;
						}
						
						Share.AjaxRequest({
							url : ctx + "/mailPreview",
							params : {
								doc_no : doc_no
							},
							showMsg : false,
							callback : function(json) {
								if (json.resultcode == '0') {
									mailPreview();
									Ext.getCmp('review_to').setValue(json.review_to);
									Ext.getCmp('review_cc').setValue(json.review_cc);
									Ext.getCmp('review_bcc').setValue(json.review_bcc);
									Ext.getCmp('review_subject').setValue(json.review_subject);
									Ext.getCmp('review_email').setValue(json.review_email);
									Ext.getCmp('review_msg').setValue(json.review_msg);
								} else {
									Ext.Msg.alert('提示','未启用寄送功能，请在配置中心设置模板。');
								}
							}
						});
					}
				}
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref02',
				style:'text-align:center;',
				text : Share.Ref[1]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref03',
				style:'text-align:center;',
				text : Share.Ref[2]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref04',
				style:'text-align:center;',
				text : Share.Ref[3]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref05',
				style:'text-align:center;',
				text : Share.Ref[4]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref06',
				style:'text-align:center;',
				text : Share.Ref[5]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref07',
				style:'text-align:center;',
				text : Share.Ref[6]
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref08',
				style:'text-align:center;',
				text : Share.Ref[7]
			},                 {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref10',
                style:'text-align:center;',
                text: Share.Ref[9]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref11',
                style:'text-align:center;',
                text: Share.Ref[10]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref12',
                style:'text-align:center;',
                text: Share.Ref[11]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref13',
                style:'text-align:center;',
                text: Share.Ref[12]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref14',
                style:'text-align:center;',
                text: Share.Ref[13]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref15',
                style:'text-align:center;',
                text: Share.Ref[14]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref16',
                style:'text-align:center;',
                text: Share.Ref[15]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref17',
                style:'text-align:center;',
                text: Share.Ref[16]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref18',
                style:'text-align:center;',
                text: Share.Ref[17]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref19',
                style:'text-align:center;',
                text: Share.Ref[18]
            },
            {
                xtype: 'gridcolumn',
                width: 100,
                align: 'left',
                dataIndex: 'ref20',
                style:'text-align:center;',
                text: Share.Ref[19]
            } ],
			viewConfig : {
				enableTextSelection : true
			},
			selModel : Ext.create('Ext.selection.CheckboxModel', {
				checkOnly : false
			}),
//			plugins : [ {
//				ptype : "rowselectionpaging"
//			} ],
			dockedItems : [ {
				xtype : 'pagingtoolbar',
				dock : 'bottom',
				width : 360,
				inputItemWidth : 45,
				displayInfo : true,
				store : 'DealSendMessage',
				plugins : [ {
					ptype : "pagesize",
					uxPageSize : page_size
				} ]
			}, {
				xtype : 'toolbar',
				dock : 'top',
				items : [ {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combo',
					labelwidth : 40,
					width : 234,
					id : 'doc_no_combo',
					fieldLabel : Share.T('单据号'),
					valueField : 'value',
					displayField : 'text',
					hideTrigger : true,
					store: new Ext.data.JsonStore({
    					proxy: {
        	                type: 'ajax', 
        	                url : ctx + '/getDocNo',
        	                reader : {
        	                    type : 'json',
        	                    totalProperty : '',
        	                    root : '' 
        	                } 
    					},
	        	        fields : ['text','value'], 
	        	        autoLoad : true 
					}),
					listeners : {
						beforequery : function(e) {
        					var combo = e.combo;   
        					if(!e.forceAll){   
        						var value = e.query;   
        						combo.store.filterBy(function(record,id){   
        							var text = record.get(combo.displayField); 
        							return (text.indexOf(value)!=-1);   
        						});
        						combo.expand();   
        						return false;   
        					}
    					}
    				}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combo',
					labelwidth : 40,
					width : 234,
					id : 'cust_name_combo',
					valueField : 'value',
					displayField : 'text',
					fieldLabel : Share.T('客户名称'),
					hideTrigger : true,
					store: new Ext.data.JsonStore({
    					proxy: {
        	                type: 'ajax', 
        	                url : ctx + '/getCusName',
        	                reader : {
        	                    type : 'json',
        	                    totalProperty : '',
        	                    root : '' 
        	                } 
    					},
	        	        fields : ['text','value'], 
	        	        autoLoad : true 
					}),
					listeners : {
						beforequery : function(e) {
        					var combo = e.combo;   
        					if(!e.forceAll){   
        						var value = e.query;   
        						combo.store.filterBy(function(record,id){   
        							var text = record.get(combo.displayField); 
        							return (text.indexOf(value)!=-1);   
        						});
        						combo.expand();   
        						return false;   
        					}
    					}
    				}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'button',
					text : Share.T('查询'),
					width : 50,
					onClick : function() {
						var cust_code = Ext.getCmp('cust_name_combo').getValue();
						var doc_no = Ext.getCmp('doc_no_combo').getValue();
						var store = Ext.getCmp('tab-deal-send').getStore();
			      		store.currentPage = 1;
			      		store.removeAll();
						store.on('beforeload', function(store) {
		         			Ext.apply(store.proxy.extraParams , {
		         				doc_no : doc_no,
		         				cust_code : cust_code
		         			});
						});
		                store.load();
					}
				} ]
			} ]
		});

		me.callParent(arguments);
	}
});